|
Author |
Thread Statistics | Show CCP posts - 1 post(s) |

Larshus Magrus
Einherjar Rising Cry Havoc.
|
Posted - 2008.02.17 03:22:00 -
[1]
Originally by: MyOwnSling Not quite. Due to the nature of how computers work, you cannot generate a truly random sequence. The sequence will eventually repeat itself, but if you do it right it can take quite a while for it to do so.
Actually this is not entirely true. You are describing a pseudo-random number generator. It is possible, with the correct (read expensive and usually slow) hardware to generate infinite length non repeating strings of random numbers. Notice the non repeating part. How random, well that depends on the hardware :)
|

Larshus Magrus
Einherjar Rising Cry Havoc.
|
Posted - 2008.02.17 03:47:00 -
[2]
Ok I like another poster did research years ago on this subject when going for an advanced CE degree. A couple of interesting tidbits:
1) As the Dev stated we have the tendency to look for patterns where there could very well be none. 2) Eve makes it VERY hard to sample a large enough set size (read hundreds of thousands, if not millions) of tries in a completely controlled environment to assemble a dataset to operate on. 3) I, like akita, am involved in invention. I invent specific modules by the thousands. I've kept records on success and failure strings. The data set is too small to draw any real conclusive proof from just being in the low 4 figures but there are some streaks in it that would make me a millionaire if I played the lottery here in the states :) what does it mean, Can't tell with the sample set size really.
What concerns me however are the fellowing points: 1) Akita, along with other inventors (look at chukers pages) have some very statistically odd streaks going at times. Again teh data sets are too small and this all could be normal but even if I try to supress my pattern generating human reaction, something still tickles as wrong.
**** 2 *****) This whole sequence of events played itself out years ago in Everquest. It had to do with moster spawns and rare spawns. People kept ascerting after collecting huge amounts of data that the RNG was not truely RNG and repeated. I being one of them. Not the same problem as here but still. SOE denied it repeatedly until someone offered a proof that was statistically sound. It was much easier to generate tries in Everquest because it was easy, and cheap, to generate controlled data int large sets (craft, spawning stytem). SOE then looked at their RNG and lo and behold, it was broke! They then published a new RNG for peer review and implemented it. If you google this whole thing you'll find it I'm sure.
3) I suspect the RNG hasn't been changed since day one. I also suspect being the case and knowing the way eve has grown organicly, there is the possibility that eve uses a canned RNG. Canned RNG's almost always express locality in their sequences bacause they are written for speed and not randomness (as odd as that sounds). Google it or sign up for a course on it.. it can take a whole semester to REALLY teach :) Knowing just how bad the locality is is impossible to say without knowing which one it uses and what the data set is its drawing upon.
4) I've followed the multiple threads on this over the last 6 months and I have not seen a single Dev give an official response. Its possible that the dev the picked the original RNG is not longer employed by CCP and since it just "works", none of the devs have bothered to look at the RNG.
5) As far as I can tell, unless someone can figure out a good fast way in eve to generate strings in a controlled fashion, CCP will continue to ignore these threads. Sad but true.
I sure hope to hell the devs get together and track down the person responsible for the RNG code, or the canned code pick and review the RNG simply because if it is localized, and someone finds a way to exploit it, even by just a few %, you will see a massive scandal (another BoB mess?)
so do us all a favor and take the 30 minutes to review it and simply post which one it is. Its a RNG. If its a good one posting which one it is will give no one an advantage. However if its a crappy one and choosing to ignore it...
|

Larshus Magrus
Einherjar Rising Cry Havoc.
|
Posted - 2008.02.18 15:24:00 -
[3]
Originally by: Etho Demerzel Regarding some points brought in the last posts:
1) No the random generator is not fine.
2) Random sequences have some predictable properties. Although you can't predict individual results you can predict things like average and deviations. As the number of samples increase exceptions become very rare and if the exceptions appear it is extremelly more likely that there is an error in the generation of the sequence than of the sequece being a normal aberration.
3) No that chance is NOT 83.1%, counterparty. If you can't figure why it is not you shouldn't post. Just for clarification, the 0.39% is also not the chance in the sample of 900. It is the chance of a streak of 8/8 it is used as base chance in the calculations.
4) There is no way we can use the number of other players and their events to justify the anomaly in mine, unless you have data about these other players and know that they are fine. I have data on several other friends doing invention and they have exactly the same results. It is not one unlikely anomaly happening to me but several long streaks for all the people I have talked to.
5) Talking that in your layman opinion something that needs a considerable specialized knowledge to be understood is fine is not only ignorant but completely pointless. If you don't have mathematical arguments you shouldn't post here at all.
Finally, someone that understands the argument.
|

Larshus Magrus
Einherjar Rising Cry Havoc.
|
Posted - 2008.02.18 15:35:00 -
[4]
Uh.. people are obsessing about there being multiple rngs, lots of entropy (thats what you are actually talking about when you say that multiply processes are injecting "randomness" into the rng) and other stuff.
Statistically it doesn't matter when trying to find localized anomalies in the rng. If it has a propensity to produced clustered, skewed or lots of other odd mathematical properties based on the rng itself, it doesn't matter, statically when the samples where pulled in the sequence or for that matter, when the entropy was injected AFTER a minimum amount has already been injected. You just need a BIG set to work on.
I feel like I'm drowning here. Unless you have spent some serious time studying this, alot of this may seem counter intuitive to you... For instance the proof above would take pages that most of you would not be able to follow.
This could all be settled if someone could somehow get a set of a couple million raw numbers out of the rng :)... Or if the dev posted WHICH Rng they were using. How long would that take? 2 minutes to look it up? If they posted which one they were using right there we would be able to tell if its random "enough" or not.
|

Larshus Magrus
Einherjar Rising Cry Havoc.
|
Posted - 2008.02.18 19:11:00 -
[5]
Originally by: Etho Demerzel
Originally by: Akita T Nobody reads the whole thread *sigh*.
I feel your pain :(
Ditto. I've given up for the most part.
|

Larshus Magrus
Einherjar Rising Cry Havoc.
|
Posted - 2008.02.18 19:16:00 -
[6]
Originally by: Cker Heel
Originally by: Ephemeron I'm just curious what algorythm CCP use for random numbers.
Is it just a rand() function call from windows?
Eve is written in Stackless Python and runs on Windoes. The default random number generator used by Windosw Python is CryptGenRandom from Microsoft's Crypt API. CryptGenRandom is most likely the pRNG used by CCP.
A thesis on this pRNG was written by Leo Dorrendorf. It says this is the algorithm:
1 CryptGenRandom(Buffer , Len) //output Len bytes to Buffer 2 while (Len >0) { 3 R := R ⊕ get_next_20_rc4_bytes() 4 State := State ⊕ R 5 T := SHA -1æ(State) 6 Buffer := Buffer 7 R[0..4] := T[0..4] //copy 5 least significant bytes 8 State := State + R + 1 9 Len := Len − 20 10 }
The function SHA-1Æ, generating output as a function of State, is a variant of SHA-1 with the Initialization Vector (IV) reversed
The thing is back when Eve was first written, I don't think it used the same version of Python as it does now. I'm pretty sure it wasn't stackless back then to begin with... don't know how much it matters on the selection of the Rand function and what choices were available back then.
For speed what worries me is they might have gone with a much simpler version of the rand function. The above one isn't the speediest thing in the world, although it is fairly good.
|
|
|
|